#ifndef EEZ_LVGL_UI_SCREENS_H
#define EEZ_LVGL_UI_SCREENS_H

#include <lvgl/lvgl.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _objects_t {
    lv_obj_t *boot_screen;
    lv_obj_t *main_screen;
    lv_obj_t *get_ticket_screen;
    lv_obj_t *member_center_screen;
    lv_obj_t *buy_ticket_screen;
    lv_obj_t *film_details_screen;
    lv_obj_t *pay_screen;
    lv_obj_t *main_screen_title_label;
    lv_obj_t *main_screen_slideshow;
    lv_obj_t *obj0;
    lv_obj_t *obj1;
    lv_obj_t *obj2;
    lv_obj_t *obj3;
    lv_obj_t *obj4;
    lv_obj_t *get_ticket_screen_title_label;
    lv_obj_t *get_ticket_screen_mid_panel;
    lv_obj_t *get_ticket_roller;
    lv_obj_t *get_ticket_textarea;
    lv_obj_t *obj5;
    lv_obj_t *get_ticket_bar_label;
    lv_obj_t *get_ticket_key_board;
    lv_obj_t *obj6;
    lv_obj_t *obj7;
    lv_obj_t *member_center_screen_title_label;
    lv_obj_t *member_center_phone_num;
    lv_obj_t *member_center_id_card;
    lv_obj_t *member_center_dropdown;
    lv_obj_t *member_center_discounts_label;
    lv_obj_t *obj8;
    lv_obj_t *member_center_member_id;
    lv_obj_t *member_center_recharge_amount;
    lv_obj_t *obj9;
    lv_obj_t *obj10;
    lv_obj_t *member_center_account_info_label;
    lv_obj_t *member_center_screen_bar_label;
    lv_obj_t *member_center_key_board;
    lv_obj_t *obj11;
    lv_obj_t *obj12;
    lv_obj_t *buy_ticket_screen_title_label;
    lv_obj_t *buy_ticket_screen_mid_panel;
    lv_obj_t *buy_ticket_screen_bar_label;
    lv_obj_t *obj13;
    lv_obj_t *obj14;
    lv_obj_t *buy_ticket_screen_title_label_1;
    lv_obj_t *film_details_screen_mid_panel;
    lv_obj_t *film_details_image;
    lv_obj_t *film_details_label;
    lv_obj_t *film_sessions_panel;
    lv_obj_t *film_details_screen_bar_label;
    lv_obj_t *obj15;
    lv_obj_t *obj16;
    lv_obj_t *buy_ticket_screen_title_label_2;
    lv_obj_t *pay_screen_mid_panel;
    lv_obj_t *obj17;
    lv_obj_t *pay_screen_member_id;
    lv_obj_t *obj18;
    lv_obj_t *obj19;
    lv_obj_t *pay_screen_bar_label;
    lv_obj_t *pay_screen_key_board;
    lv_obj_t *obj20;
    lv_obj_t *obj21;
} objects_t;

extern objects_t objects;

enum ScreensEnum {
    SCREEN_ID_BOOT_SCREEN = 1,
    SCREEN_ID_MAIN_SCREEN = 2,
    SCREEN_ID_GET_TICKET_SCREEN = 3,
    SCREEN_ID_MEMBER_CENTER_SCREEN = 4,
    SCREEN_ID_BUY_TICKET_SCREEN = 5,
    SCREEN_ID_FILM_DETAILS_SCREEN = 6,
    SCREEN_ID_PAY_SCREEN = 7,
};

void create_screen_boot_screen();
void tick_screen_boot_screen();

void create_screen_main_screen();
void tick_screen_main_screen();

void create_screen_get_ticket_screen();
void tick_screen_get_ticket_screen();

void create_screen_member_center_screen();
void tick_screen_member_center_screen();

void create_screen_buy_ticket_screen();
void tick_screen_buy_ticket_screen();

void create_screen_film_details_screen();
void tick_screen_film_details_screen();

void create_screen_pay_screen();
void tick_screen_pay_screen();

void tick_screen_by_id(enum ScreensEnum screenId);
void tick_screen(int screen_index);

void create_screens();


#ifdef __cplusplus
}
#endif

#endif /*EEZ_LVGL_UI_SCREENS_H*/